package com.infore.common.model.entity;

import com.baomidou.mybatisplus.enums.IdType;

import java.util.Date;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.infore.common.base.BaseModel;

import java.io.Serializable;

import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableId;
import lombok.Data;

/**
 * <p>
 * 查询接口SQL模板
 * </p>
 *
 * @author lijh
 * @since 2022-12-01
 */
@TableName("t_base_query_sql")
@Data
public class TBaseQuerySql extends BaseModel<TBaseQuerySql> {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * sql编码
     */
    @TableField("sql_code")
    private String sqlCode;
    /**
     * 分组名称,建议同一类型业务分一个组
     */
    @TableField("group_name")
    private String groupName;
    /**
     * 执行SQL,执行SQL变量用:表示，例如#{start}或者${start}
     */
    @TableField("execute_sql")
    private String executeSql;
    /**
     * 加密sql
     */
    @TableField("encrypt_sql")
    private String encryptSql;
    /**
     * sql适用数据库类型 mysql(MYSQL)，oracle(ORACLE)，通用(COMMON)
     */
    @TableField("database_type")
    private String databaseType;
    /**
     * 查询参数，多个参数用逗号分隔，例如 start,end
     */
//    @TableField("query_params")
//    private String queryParams;
    /**
     * 参数模板，json格式{"start":"2022-11-01","end":"2022-11-31"}
     */
    @TableField("query_json")
    private String queryJson;

    /**
     * 返回结果限制行，如果不限制为空
     */
    @TableField("result_limit")
    private Integer resultLimit;
    /**
     * 返回结果列多个结果用逗号分隔按select顺序填写，例如 name|姓名，age|年龄
     */
    @TableField("result_column")
    private String resultColumn;

    /**
     * 部分列的单位：xAxis|小时,yAxis|人次
     */
    @TableField("result_unit")
    private String resultUnit;
    /**
     * 返回数据格式，饼图_PIE，折线图_LINE，地图_MAP，列表_TABLE.....
     */
    @TableField("result_dataformat")
    private String resultDataformat;
    /**
     * 功能描述
     */
    @TableField("description")
    private String description;
    /**
     * 创建人ID
     */
    @TableField("create_userId")
    private String createUserid;
    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
